solving linear system